/**
 * 
 */
package cn.agiledata.bank.facade;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import cn.agiledata.bank.account.service.IPreferences;

/**
 * 用于认证和权限判定等使用的用户摘要.
 * 包括：用户名/口令 用户真实姓名 用户所被赋予的所有服务
 * <p><strong>注意</strong>：大部分情况下，用户不直接与服务关联，而是通过建立Role一层来实现灵活定制。
 * 有关 用户/角色/权限 具体实现可以采用自行实现
 * 
 * @author 马贤波
 *
 * 2006-3-2
 */
public interface IUserSummary extends Serializable {
	
	/** 用户ID */
	abstract public Long getUserId () ;
	/** 用户名称 */
	abstract public String getUsername () ;
	/** 用户LastLogin */
	abstract public Date getLastLogin () ;
	/** 首选项 */
	abstract public IPreferences getPreferences () ;
	/** 功能部分可到达性 */
	public List getSectionAuthors() ;
	/** 数据权限标示 */
	abstract public Long getDomainAuthen () ;
	/** 功能权限列表 */
	abstract public List/*String*/ getServiceAuthors () ;
	/** 用户类型 **/
	abstract public String getAccountType();

}
